#ifndef SHAPE_H
#define SHAPE_H

namespace custom{

typedef struct Point2f_Struct {
    float x;
    float y;

    Point2f_Struct(float x, float y) : x(x), y(y) {}
    Point2f_Struct() : x(0), y(0) {}
} Point2f;

class Shape {
public:
    Shape(Point2f center) : center(center) {}
    Shape() {}
protected:
    Point2f center;
    float perimeter = 0;
    float area = 0;

    virtual float solvePerimeter() {};
    virtual float solveArea() {};
};

}

#endif // SHAPE_H